package com.s6.sort1;

/**
 * 冒泡排序：非稳定排序，且复杂度高，只适用于小规模排序
 */
public class BubbleSort {

	public static void main(String[] args) {
		int[] array = ArrayUtils.randomInt();
		ArrayUtils.print(array);
		sort(array);
		ArrayUtils.print(array);
	}

	public static void sort(int[] array) {
		int j;
		for (int i = 0; i < array.length - 1; i++) {
			// 提前退出冒泡循环的标志位
			boolean flag = false;
			for (j = 0; j < array.length - 1 - i; j++) {
				if (array[j] > array[j + 1]) {
					ArrayUtils.swap(array, j, j + 1);
					flag = true;
				}
			}
			// 没有数据交换，提前退出
			if (!flag) {
				break;
			}
		}
	}

}
